package com.example.test01;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;

import java.io.File;


public class MainActivity extends AppCompatActivity {


    /**
     * 用于请求值使用
     */
    private final int PERMISSION_REQUEST = 100;

    /**
     * 加载图片用的ImageView
     */
    private ImageView ivPic;

    /**
     * 点击后去加载图片
     */
    private Button btnLoad;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
//
//        WebView webView = findViewById(R.id.webview);
//
//
//        webView.loadUrl("https://www.bigc.edu.cn/");
//        webView.setWebViewClient(new WebViewClient());

        if (Build.VERSION.SDK_INT >= 23) {
            //申请的权限数组
            String[] mPermissionList = new String[]{
                    //SD卡写入权限
                    Manifest.permission.WRITE_EXTERNAL_STORAGE,
                    //SD卡读取权限
                    Manifest.permission.READ_EXTERNAL_STORAGE,
                    //访问电话状态
                    Manifest.permission.READ_PHONE_STATE,
                    //访问摄像机权限
                    Manifest.permission.CAMERA
            };
            //以下int数值都是申请权限后的返回值，0表示同意（PackageManager.PERMISSION_GRANTED），-1表示拒绝（PERMISSION_DENIED）
            //而我们为了读取到SD卡中的数据，需要点同意
            int checkSPermission = ContextCompat.checkSelfPermission(this,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE);
            int checkSPermission2 = ContextCompat.checkSelfPermission(this,
                    Manifest.permission.READ_EXTERNAL_STORAGE);
            int checkSPermission3 = ContextCompat.checkSelfPermission(this,
                    Manifest.permission.READ_PHONE_STATE);
            int checkSPermissionCAMERA = ContextCompat.checkSelfPermission(this,
                    Manifest.permission.CAMERA);

            //判断用户是否允许了我们所需权限
            if ((checkSPermission != PackageManager.PERMISSION_GRANTED)
                    || (checkSPermission2 != PackageManager.PERMISSION_GRANTED)
                    || (checkSPermission3 != PackageManager.PERMISSION_GRANTED)
                    || (checkSPermissionCAMERA != PackageManager.PERMISSION_GRANTED)) {
                ActivityCompat.requestPermissions(this, mPermissionList, PERMISSION_REQUEST);
            }
        }

        ivPic = findViewById(R.id.image);
        btnLoad = findViewById(R.id.btn_load);
        btnLoad.setOnClickListener(new View.OnClickListener() {

            /**
             * 在点击之前,其实还应该再次判断用户是否授权
             * 但是为了避免重敲一遍上述代码小编就省略啦,但是小伙伴在实际开发中一定要写!!!!
             * @param view
             */
            @Override
            public void onClick(View view) {
//                //Environment.getExternalStorageDirectory().getAbsolutePath()方法是获取手机SD卡的绝对路径
//                //而绝对路径就是你SD卡的最上层文件夹(就好比还未双击的C盘)
//                //而/xmkh表示的是文件夹（相当于C盘中的一个文件夹）的名字
//                //而/xmkh.png表示的是你要加载的本地图片（相当于C盘中xmkh文件夹下的一个图片）
//                String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/storage/emulated/O/Pictures/IMG_20230527_081738.jpg";
//                //Uri我们前面的文章ContentProvider已经讲过了，忘记了的小伙伴可以去复习一下~
//                Uri uri = Uri.fromFile(new File(path));
//                //通过setImageURI设置路径
//                ivPic.setImageURI(uri);

                //调用图库，获取所有本地图片
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                //第一个参数是Uri,其实就是通过咱们之前讲到过的四大组件ContentProvider根据Uri进行查找SD卡中的所有的图片
                //只不过这是系统封装了一个方法不用我们自己去写（一环套一环，ContentProvider的重要性不用我再强调了吧~）
                intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                        "image/*");
                //INTENT_MEDIA_REQUEST_CODE是我们需要在onActivityResult方法中的识别码,识别是否是从相册返回的数据，与PERMISSION_REQUEST作用相同
                startActivityForResult(intent, INTENT_MEDIA_REQUEST_CODE);
            }
        });








   }




}
















